package com.cloud.auth.properties;

import lombok.Data;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;

/**
 * @Description:
 * @Auther: zhangxun
 * @Date: 2020/8/11 15:25
 */
@Data
@SpringBootConfiguration //@Component的派生注解
@PropertySource(value = {"classpath:auth.properties"})
@ConfigurationProperties(prefix = "oauth2.auth")
/**
 * clients属性类型为上面定义的FebsClientsProperties，因为一个认证服务器可以根
 * 据多种Client来发放对应的令牌，所以这个属性使用的是数组形式；
 * accessTokenValiditySeconds用于指定access_token的有效时间，默认值为60 * 60 * 24秒；
 * oauth2.auth前缀，剩下部分和AuthProperties配置类属性名称对应上的话，就会被读取到AuthProperties相应的属性中
 */
public class AuthProperties {
    private ClientsProperties[] clients = {};
    private int accessTokenValiditySeconds = 60 * 60 * 24;
    private int refreshTokenValiditySeconds = 60 * 60 * 24 * 7;
    // 免认证路径
    private String anonUrl;
    //验证码配置类
    private ValidateCodeProperties code = new ValidateCodeProperties();
}